ALTER TABLE MOVE <ヒープ表> | 您所在的位置:网站首页 › ora-01735 非法alter table › ALTER TABLE MOVE <ヒープ表> |
Top ALTER TABLE ALTER TABLE <MOVE> ALTER TABLE MOVE <ヒープ表>
ALTER TABLE <ヒープ表> の移動
ALTER TABLE 〜 MOVE
ALTER TABLE table MOVE [ ONLINE ]
既存のテーブル属性を継承したまま、同一表領域上に新しいセグメントを確保。すべてのデータを再配置して現在使用中のセグメントは解放する。 my_table を新しいセグメント上に再構築する。 ALTER TABLE my_table MOVEmy_table を表排他ロックをかけずに移動する。(ヒープ表の場合) ALTER TABLE my_table MOVE ONLINE * 行1でエラーが発生しました。: ORA-01735: ALTER TABLEオプションが無効です。ONLINE オプション付きで再構築が可能なのは 索引構成表。ヒープ表に対しては ONLINE は使用できない。 ALTER TABLE 〜 MOVE ALTER TABLE 〜 MOVEALTER TABLE 〜 MOVE [ PCTFREE | PCTUSED | INITRANS ] PCTFREE の設定 と再構築 オブジェクトの行を将来更新するために確保しておく領域の割合。各ブロックごとに管理されている。 PCTFREE の変更を行ない再構築する。 ALTER TABLE my_table MOVE PCTFREE 20PCTUSED の設定 と再構築 使用済領域のうち、データブロックごとに確保される最小限の割合。この割合を下回ると挿入可能なブロックとなる。 PCTUSED の変更を行ない再構築する。 自動セグメント領域管理の場合には PCTUSED は設定は無視されるため意味はない。 ALTER TABLE my_table MOVE PCTUSED 80INITRANS の設定 と再構築 「データブロック単位」(≠ テーブル全体)にあらかじめ確保しておく同時実行トランザクション・エントリの数。 INITRANS の変更を行ない再構築する。 ALTER TABLE my_table MOVE INITRANS 5 ALTER TABLE 〜 MOVE TABLESPACE tablespace既存のテーブル属性を継承したまま、指定した表領域上に新しいセグメントを確保。すべてのデータを再配置して現在使用中のセグメントは解放する。 my_table を表領域 my_tablespace に移動する。 ALTER TABLE my_table MOVE TABLESPACE my_tablespace ALTER TABLE 〜 MOVE パーティション表 パーティション表の場合にはパーティション単位に MOVE を行なう。表に対して MOVE を行なうと ORA-14511: この操作はパーティション・オブジェクトでは実行できません。 が発生する。(Oracle 11g R2 時点) ALTER TABLE my_table MOVE PARTITION my_table_partition コンポジット・パーティション表の場合にはサブパーティション単位に MOVE を行なう。パーティション単位に MOVE を行なうと ORA-14257: レンジ、リスト、システムまたはハッシュ・パーティション以外のパーティションは移動できません。が発生する。(Oracle 11g R2 時点) ALTER TABLE my_table MOVE SUBPARTITION my_table_subpartition ALTER TABLE 〜 MOVE 実行後に注意すること表を MOVE することで ROWID が変更される。このため関連するインデックスが無効 (※1) となり、ステータスが UNUSABLE 状態になるためインデックスの再構築が必要。 さらに 統計情報も無効となるので再取得 が必要となる。 (※1) 無効になっているタイミングでユーザーからインデックスを利用する SQL が実行されると「ORA-01502: 索引 〜 またはそのパーティションが使用不可の状態です。」 が発生する。 関連事項 テーブルの作成 〜 CREATE TABLE テーブルの削除 〜 DROP TABLE ALTER TABLE MOVE と ALTER TABLE SHRINK の違い |
CopyRight 2018-2019 实验室设备网 版权所有 |